#ifndef FLOYDWARSHALLTEST_H
#define FLOYDWARSHALLTEST_H

#include <time.h>
#include <iostream>

#include <boost/config.hpp>
#include <boost/graph/graph_traits.hpp>
#include <boost/graph/properties.hpp>
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/floyd_warshall_shortest.hpp>

#include "SimpleGraph.h"
#include "CompleteGraph.h"
#include "DistanceMatrix.h"
#include "Generator.h"
#include "Helper.h"

namespace zbp
{
	double floyd_warshall_CompleteGraph_test(CompleteGraph<int> graph, bool display);
	double floyd_warshall_initialized_CompleteGraph_test(CompleteGraph<int> graph, bool display);
	double floyd_warshall_SimpleGraph_test(SimpleGraph graph, bool display);
	double floyd_warshall_initialized_SimpleGraph_test(SimpleGraph graph, bool display);
	double floyd_warshall_boost_test(zbp::BoostEdge *edge_array, int *weights, int nodes_count, int edges_count, bool display);

	void floyd_warshall_tests_run(SimpleGraph simple_graph, CompleteGraph<int> complete_graph, BoostEdge* boost_edges, int* boost_weights, int nodes_count, int edges_count);
}

#endif